When updating a file, handle the case where the old file info is the same as the...
authorFederico Mena Quintero <federico@novell.com>
Wed, 2 Sep 2009 20:23:21 +0000 (15:23 -0500)
committerBenjamin Otte <otte@gnome.org>
Thu, 15 Oct 2009 20:06:16 +0000 (22:06 +0200)
This prevents us from inadvertently losing the last ref to the info.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
gtk/gtkfilesystemmodel.c

index 1f830f0d00faa0da3413d7dd942d63c08383bf41..0baad5e86459cb84ba28ce2a720e585e94a31a6a 100644 (file)
@@ -1640,6 +1640,7 @@ _gtk_file_system_model_update_file (GtkFileSystemModel *model,
 {
   FileModelNode *node;
   guint i, id;
+  GFileInfo *old_info;
 
   g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
   g_return_if_fail (G_IS_FILE (file));
@@ -1650,9 +1651,12 @@ _gtk_file_system_model_update_file (GtkFileSystemModel *model,
     add_file (model, file, info);
 
   node = get_node (model, id);
-  if (node->info)
-    g_object_unref (node->info);
+
+  old_info = node->info;
   node->info = g_object_ref (info);
+  if (old_info)
+    g_object_unref (old_info);
+
   for (i = 0; i < model->n_columns; i++)
     {
       if (G_VALUE_TYPE (&node->values[i]))